/*
 * Copyright (c) 2012 SUBSECRETARIA DEFENSORIA DEL ESPACIO PUBLICO - SDEP.
 * All Rights Reserved.
 * This software is the confidential and proprietary information of SDEP
 * Developed By CONSTULT-SOFT S.A, Development Team 2012.
 *
 */
package co.gov.medellin.sdep.sisdep.model.dao;

import java.util.List;

import co.gov.medellin.sdep.sisdep.model.ModuloDiseno;


/**
 * <p>
 * Interface que define los metodos genericos de acceso a datos, necesarios para la gestion de Disenios de Modulos de los 
 * Comerciantes en SISDEP.
 * </p>
 * <p>
 * Copyright (c) 2012<BR>
 * Consult-Soft S.A.<BR>
 * Created on: May 09, 2012<BR>
 * 
 * @author atabares
 * </p>
 */
public interface IModuloDisenoDAO {

	/**
	 * Inserta un nuevo Disenio de Modulo de comerciante en SISDEP.
	 * @param moduloDiseno Entidad Modulo que se va a insertar.
	 */
	void insert(ModuloDiseno moduloDiseno);

	/**
	 * Actualiza un Disenio de Modulo de comerciante en SISDEP.
	 * @param moduloDiseno Entidad ModuloDiseno que se va a actualizar.
	 */
	void update(ModuloDiseno moduloDiseno);

	/**
	 * Elimina un Disenio de Modulo de comerciante en SISDEP.
	 * @param moduloDiseno Entidad ModuloDiseno que se va a eliminar.
	 */
	void delete(ModuloDiseno moduloDiseno);

	/**
	 * Elimina un Disenio de Modulo dada su clave primaria.
	 * @param id Clave primaria del registro de ModuloDiseno.
	 */
	void deleteByPrimaryKey(long id);

	/**
	 * Obtiene una lista de Disenios de Modulo dado los criterios de busqueda pasados como parametro.
	 * @return Lista con los registros que coinciden con los criterios de busqueda.
	 */
	List load();

	/**
	 * Obtiene un Disenio de Modulo dada su clave primaria.
	 * @param id Clave primaria del registro de ModuloDiseno.
	 * @return ModuloDiseno que coincide con el id pasado como parametro.
	 */
	ModuloDiseno findByPrimaryKey(long id);

	/**
	 * Obtiene un Disenio de Modulo dado los criterios de busqueda pasados como parametro.
	 * @return ModuloDiseno Registro que coincide con los criterios de busqueda.
	 */
	ModuloDiseno findByCriteria(ModuloDiseno moduloDiseno);

	/**
	 *
	 * @param moduloDiseno
	 * @return
	 */
	ModuloDiseno findByActiveState(ModuloDiseno moduloDiseno);

}
